package cn.iocoder.yudao.module.jky.controller.admin.checking.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * 商品 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class CheckingBaseVO {

    @Schema(description = "商品分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20889")
    @NotNull(message = "商品分类不能为空")
    private Short catId;

    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @NotNull(message = "名称不能为空")
    private String goodsName;

    @Schema(description = "商品编码")
    private String goodsCode;

    @Schema(description = "标题图片")
    private String img;

    @Schema(description = "商品图片缩略图")
    private String tmpImg;

    @Schema(description = "视频")
    private String video;

    @Schema(description = "视频地址", example = "https://www.iocoder.cn")
    private String videoUrl;

    @Schema(description = "简要说明", example = "你猜")
    private String description;

    @Schema(description = "内容")
    private String content;

    @Schema(description = "品牌ID", example = "7076")
    private Short brandId;

    @Schema(description = "是否显示 Y显示 N不显示", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "是否显示 Y显示 N不显示不能为空")
    private String isShow;

    @Schema(description = "是否推荐/置顶 Y是 N否", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "是否推荐/置顶 Y是 N否不能为空")
    private String isTop;

    @Schema(description = "是否为特价商品 Y是 N否", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "是否为特价商品 Y是 N否不能为空")
    private String isSale;

    @Schema(description = "是否开启会员等级折扣 Y是 N否", requiredMode = Schema.RequiredMode.REQUIRED, example = "30234")
//    @NotNull(message = "是否开启会员等级折扣 Y是 N否不能为空")
    private String isDiscount;

    @Schema(description = "排序")
    private Integer sort;

    @Schema(description = "点击量")
    private Integer clicknum;

    @Schema(description = "参考价格", example = "11369")
    private Double oldPrice;

    @Schema(description = "成本单位分", example = "31248")
    private Integer costPrice;

    @Schema(description = "实际价格 单位分", example = "31645")
    private Integer price;

    @Schema(description = "利润比例")
    private BigDecimal profitRatio;

    @Schema(description = "佣金比例")
    private BigDecimal commissionRatio;

    @Schema(description = "运费")
    private Double postage;

    @Schema(description = "库存数量")
    private Integer inventory;

    @Schema(description = "赠送积分")
    private Integer givePoint;

    @Schema(description = "可抵扣积分")
    private Integer deductionPoint;

    @Schema(description = "是否开启SKU属性配置", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "是否开启SKU属性配置不能为空")
    private String isSku;

    @Schema(description = "商品SKU属性配置")
    private String skuStr;

    @Schema(description = "销售量", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer salesVolume;

    @Schema(description = "虚拟销售量")
    private Integer virtualVolume;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime createtime;

    @Schema(description = "是否删除 Y是 N否", requiredMode = Schema.RequiredMode.REQUIRED)
    private String isDelete;

    @Schema(description = "类型1自营商城2积分商城", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer type;

    @Schema(description = "吉大米兑换金额", example = "9285")
    private BigDecimal bigPrice;

    @Schema(description = "提供", requiredMode = Schema.RequiredMode.REQUIRED)
    private Double proffer;

    @Schema(description = "购买返还b积分")
    private BigDecimal fhSmall;

    @Schema(description = "寄售手续费b积分")
    private BigDecimal sxSmall;

    @Schema(description = "供应商组ID 0代表无", requiredMode = Schema.RequiredMode.REQUIRED, example = "9216")
    private Integer supplierId;

    @Schema(description = "寄售限制数量", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotNull(message = "寄售限制数量不能为空")
    private Integer banNum;

    @Schema(description = "寄售比例")
    private Integer inteBili;



}
